翻訳と辞書
Words near each other
・ Reifenstein Castle
・ Reiferscheid
・ Reifezeugnis
・ Reiff
・ Reiff (Rhineland-Palatinate)
・ Reiff Farm
・ Reiff's Antique Gas Station Automotive Museum
・ Reiff, California
・ Reiff, Ross-shire
・ Reiffel
・ Reiffelbach
・ Reifferscheid
・ Reiffsburg, Indiana
・ Reiffton, Pennsylvania
・ Reification
Reification (computer science)
・ Reification (fallacy)
・ Reification (knowledge representation)
・ Reification (linguistics)
・ Reification (Marxism)
・ Reification (statistics)
・ Reification and perspective taking
・ Reifling
・ Reifs Mills, Wisconsin
・ Reig's grass mouse
・ Reig's montane mouse
・ Reig's opossum
・ Reig's tuco-tuco
・ Reigan Derry
・ Reigandō


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Reification (computer science) : ウィキペディア英語版
Reification (computer science)

Reification is the process by which an abstract idea about a computer program is turned into an explicit data model or other object created in a programming language. A computable/addressable object — a resource — is created in a system as a proxy for a non computable/addressable object. By means of reification, something that was previously implicit, unexpressed, and possibly inexpressible is explicitly formulated and made available to conceptual (logical or computational) manipulation. Informally, reification is often referred to as "making something a first-class citizen" within the scope of a particular system. Some aspect of a system can be reified at ''language design time'', which is related to reflection in programming languages. It can be applied as a stepwise refinement at ''system design time''. Reification is one of the most frequently used techniques of conceptual analysis and knowledge representation.
== Reification and reflective programming languages ==
In the context of programming languages, reification is the process by which a user program or any aspect of a programming language that was implicit in the translated program and the run-time system, are expressed in the language itself. This process makes it available to the program, which can inspect all these aspects as ordinary data. In reflective languages, reification data is causally connected to the related reified aspect such that a modification to one of them affects the other. Therefore, the reification data is always a faithful representation of the related reified aspect. Reification data is often said to be made a first class object. Reification, at least partially, has been experienced in many languages to date: in early Lisp dialects and in current Prolog dialects, programs have been treated as data, although the causal connection has often been left to the responsibility of the programmer. In Smalltalk-80, the compiler from the source text to bytecode has been part of the run-time system since the very first implementations of the language.〔J. Malenfant, M. Jacques and F.-N. Demers, (A Tutorial on Behavioral Reflection and its Implementation )〕
* The C programming language reifies the low-level detail of memory addresses.
Many programming language designs encapsulate the details of memory allocation in the compiler and the run-time system. In the design of the C programming language, the memory address is reified and is available for direct manipulation by other language constructs. For example, the following code may be used when implementing a memory-mapped device driver. The buffer pointer is a proxy for the memory address 0xB800000.

char
* buffer = (char
*) 0xB800000;
buffer() = 10;

* Functional programming languages based on lambda-calculus reify the concept of a procedure abstraction and procedure application in the form of the Lambda expression.
* The Scheme programming language reifies continuations (approximately, the call stack).
* In C#, reification is used to make parametric polymorphism implemented as generics as a first-class feature of the language.
* In Java programming language, there exist "reifiable types" that are "completely available at run time" (i.e. their information is not erased during compilation).〔(The Java Language Specification, section 4.7 ), Java SE 7 Edition〕
* REBOL reifies code as data and vice versa.
* Many languages, such as Lisp, JavaScript, and Curl provide an eval or evaluate procedure that effectively reifies the language interpreter.
* The Logtalk framework for Prolog offers a means to explore reification in the context of logic programming.
* Smalltalk and Actor languages permit the reification of blocks and messages, which are equivalent of lambda expressions in Lisp, and thisContext which is a reification of the current executing block.
* Homoiconic languages reify the syntax of the language itself in the form of an abstract syntax tree, typically together with eval

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Reification (computer science)」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.